package org.ilead.iserve.dao;

import java.util.List;

import org.ilead.iserve.model.Resource;

public interface IResourceDAO {

	// property constants
	public static final String NAME = "name";
	public static final String DESCRIPTION = "description";
	public static final String TYPE = "type";
	public static final String URL = "url";
	public static final String IMAGE = "image";
	public static final String OPERATOR = "operator";
	public static final String STATUS = "status";

	public abstract void save(Resource transientInstance);

	public abstract void delete(Resource persistentInstance);

	public abstract Resource findById(java.lang.Integer id);

	public abstract List findByExample(Resource instance);

	public abstract List findByProperty(String propertyName, Object value);

	public abstract List findByName(Object name);

	public abstract List findByDescription(Object description);

	public abstract List findByType(Object type);

	public abstract List findByUrl(Object url);

	public abstract List findByImage(Object image);

	public abstract List findByOperator(Object operator);

	public abstract List findByStatus(Object status);

	public abstract List findAll();

	public abstract Resource merge(Resource detachedInstance);

	public abstract void attachDirty(Resource instance);

	public abstract void attachClean(Resource instance);

}